#region License Revision: 0 Last Revised: 6/18/2008 11:00 AM
/******************************************************************************
Copyright (c) Microsoft Corporation.  All rights reserved.


This file is licensed under the Microsoft Public License (Ms-PL). A copy of the Ms-PL should accompany this file. 
If it does not, you can obtain a copy from: 

http://www.microsoft.com/resources/sharedsource/licensingbasics/publiclicense.mspx
******************************************************************************/
#endregion // License
using System;
using System.Windows.Browser;
using System.Diagnostics;
using System.Text;
using ScriptInterop;
using System.Globalization;

namespace VIEWS // Virtual Earth Wrapper
{
    /// <summary>
    /// Represents the orientation of a 3D model on the map.
    /// </summary>
	public class VEModelOrientation : JSObject
	{
		/// <summary>String holding JavaScript class name</summary>
		private static string thisClass = "VEModelOrientation";
		
		/// <summary>Get the JavaScript class name</summary>
		/// <returns type="String">The class name used in JavaScript </returns>		
		public override string ClassName
		{
			get { return thisClass; }
		}

        #region Constructors
        /// <summary>Construct a C# wrapper from a ScriptObject</summary>
        public VEModelOrientation(ScriptObject so) : base(so) { }

        /// <summary>Initializes a new instance of the VEModelOrientation Class.</summary>
        /// <param name="x">
        /// A floating-point value specifying in decimal degrees the counter-clockwise rotation of the 3D model about the z-axis, looking along the positive z-axis away from the origin.
        /// </param>
        /// <param name="y">
        /// A floating-point value specifying in decimal degrees the counter-clockwise rotation of the 3D model about the x-axis, looking along the positive x-axis away from the origin.
        /// </param>
        /// <param name="z">
        /// A floating-point value specifying in decimal degrees the counter-clockwise rotation of the 3D model about the y-axis, looking along the positive y-axis away from the origin.
        /// </param>
        public VEModelOrientation(double heading, double tilt, double roll)
        {
            ScriptObject = CreateClass(heading, tilt, roll);
        }

        #endregion // Constructors

        #region Public Properties
        /// <summary>
        /// A floating-point value specifying in decimal degrees the counter-clockwise rotation of the 3D model about the z-axis, looking along the positive z-axis away from the origin.
        /// </summary>
        /// <remarks>
        /// The Heading property value range is from -360 to 360. An increase in the value of the Heading property represents a counter-clockwise rotation around the z-axis, looking along the z-axis away from the origin.
        /// </remarks>
        public double Heading
        {
            get { return GetProperty<double>("Heading"); }
            set { SetProperty("Heading", value); }
        }

        /// <summary>
        /// A floating-point value specifying in decimal degrees the counter-clockwise rotation of the 3D model about the y-axis, looking along the positive y-axis away from the origin.
        /// </summary>
        /// <remarks>
        /// The Roll property value range is from -360 to 360. An increase in the value of the Roll property represents a counter-clockwise rotation around the y-axis, looking along the y-axis away from the origin.
        /// </remarks>
        public double Roll
        {
            get { return GetProperty<double>("Roll"); }
            set { SetProperty("Roll", value); }
        }

        /// <summary>
        /// A floating-point value specifying in decimal degrees the counter-clockwise rotation of the 3D model about the x-axis, looking along the positive x-axis away from the origin.
        /// </summary>
        /// <remarks>
        /// The Tilt property value range is from -360 to 360. An increase in the value of the Tilt property represents a counter-clockwise rotation around the x-axis, looking along the x-axis away from the origin.
        /// </remarks>
        public double Tilt
        {
            get { return GetProperty<double>("Tilt"); }
            set { SetProperty("Tilt", value); }
        }
        #endregion // Public Properties
	};
}
